package com.hezhou.hezhouesjd.utils;

import com.hezhou.hezhouesjd.pojo.Content;
import org.elasticsearch.common.recycler.Recycler;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * ---------------------------
 * (HtmlParseUtil) 解析html页面
 * ---------------------------
 *
 * @Author: [hezhou]
 * @Date: 2020/5/13
 * @Version: [1.0.1]
 * ---------------------------
 */
@Component
public class HtmlParseUtil {

    /**
     * 解析京东信息
     * @return
     */
    public List<Content> parseJd(String keyword){
        //获取请求的地址 https://search.jd.com/Search?keyword=java
        //前提需要联网
        String url = "https://search.jd.com/Search?keyword="+keyword;
        //解析网页
        ArrayList<Content> arrayList = new ArrayList<>();
        try {
            //返回的document对象就是js页面对象 就是浏览器的document对象
            Document document = Jsoup.parse(new URL(url), 30000);
            //所有在js中使用的方法 这里都能用
            Element j_goodsList = document.getElementById("J_goodsList");
            //找到所有的li元素 因为所有的内容都是li标签包裹
            Elements lis = j_goodsList.getElementsByTag("li");
            for (Element li : lis) {
                //遍历所有的li标签
                String image = li.getElementsByTag("img").eq(0).attr("src");
                String price = li.getElementsByClass("p-price").eq(0).text();
                String title = li.getElementsByClass("p-name").eq(0).text();
                Content content = new Content();
                content.setImage(image);
                content.setPrice(price);
                content.setTitle(title);
                arrayList.add(content);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return arrayList;
    }
}
